1. Technical Field
The present invention relates in general to a system and method for securely restoring a software program. More particularly, the present invention relates to a system and method that securely restore a program context from a shared memory in a heterogeneous processing environment.
2. Description of the Related Art
Computing systems comprising a multiplicity of heterogeneous processor cores are becoming increasingly popular. In these environments, a heterogeneous processor includes one or more general purpose processor cores that work in conjunction with one or more special purpose processor cores. Typically, since they have different characteristics, the general purpose processors use a different instruction set architecture (ISA) than those used by the special purpose or application specific processors. Having different processing characteristics and ISAs lends each processor type to efficiently performing different types of tasks.
Because of the different characteristics of the processors, heterogeneous processors are attractive to a variety of environments, such as multimedia, gaming, and numeric intensive application environments. In this environment, a program can have multiple threads. Some of these threads can execute on the general purpose processors and other threads can execute on the special purpose processors. While multiple special purpose processors may be included in a single system, these special purpose processors may still become constrained prompting the system to task switch a thread currently running on one of the special purpose processors in order to load and execute a different thread on the special purpose processor.
One threat posed to existing computer systems are malevolent users, such as hackers, that strive to circumvent security measures used by applications in order to make illegitimate copies of the software (often for profit), or hack the software so that a different image of the software is loaded and executed by the system. Swapping one version of software for another is often referred to as a “replay attack.” One technique used by malevolent users is to capture the image of a software program that has been tasked out by the operating system and reuse the image.
What is needed, therefore, is a system and method that securely restore program contexts from memory. Furthermore, what is needed is a system and method that restore program context from a shared memory in a heterogeneous processing environment in a manner that prevents malevolent users from circumventing security controls.